package org.poem.interceptor;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Created by poem on 2017/8/29.
 */
public class DemoInterceptor extends HandlerInterceptorAdapter {

    /**
     * 请求之前
     * @param request
     * @param response
     * @param handler
     * @return
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request,
                             HttpServletResponse response,Object handler) throws Exception{
        long startTime = System.currentTimeMillis();
        request.setAttribute("startTime",startTime);
        return  true;
    }

    /**
     * 请求完成之后
     * @param request
     * @param response
     * @param handler
     * @param modelAndView
     * @throws Exception
     */
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        long startTime = (long)request.getAttribute("startTime");
        request.removeAttribute("startTime");
        long endTime = System.currentTimeMillis();
        System.err.println("本次请求处理时间为："+ new Long(endTime -startTime));
//        response.setHeader("Context-type","javascript/json;encoding=utf-8");
//        response.getWriter().println("handleTime:"+ (endTime -startTime));
        request.setAttribute("handleTime",endTime -startTime);
    }

}
